<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script>
    // 	* 什么是回调地狱?
    //   回调函数嵌套调用, 外部回调函数异步执行的结果是嵌套的回调执行的条件
	// {
	// 	// 找工作：学习---》整理简历----》投递简历----》获取面试机会----》面试-----》收到OFFER
    //     setTimeout(()=>{
	// 		console.log("学习")
	// 		setTimeout(()=>{
	// 			console.log("整理简历")
	// 			setTimeout(()=>{
	// 				console.log("投递简历")
	// 				setTimeout(()=>{
	// 					console.log("获取面试机会")
	// 					setTimeout(()=>{
	// 						console.log("面试")
	// 						setTimeout(()=>{
	// 							console.log("收到OFFER")
	// 						},2000)
	// 					},2000)
	// 				},2000)
	// 			},2000)
	// 		},2000)
    //     },2000)
    //
    //
    // }
    //
    // 	* 回调地狱的缺点?
    // 	* 不便于阅读
    // 	* 不便于异常处理
    // 	* 解决方案?
    // 		promise链式调用
	{
		// 找工作：学习---》整理简历----》投递简历----》获取面试机会----》面试-----》收到OFFER
        // const p = new Promise((resolve,reject)=>{
		// 	setTimeout(()=>{
		// 		resolve("学习")
        //     },2000)
        // })
        // const p1 = p.then(value=>{
		// 	console.log(value)
		// 	return new Promise((resolve,reject)=>{
		// 		setTimeout(()=>{
		// 			resolve("整理简历")
        //         },2000)
        //     })
        // });
		// const p2 = p1.then(value=>{
		// 	console.log(value);
		// 	return new Promise((resolve,reject)=>{
		// 		setTimeout(()=>{
		// 			resolve("投递简历")
		// 		},2000)
		// 	})
        // })
		// const p3 = p2.then(value=>{
		// 	console.log(value);
		// 	return new Promise((resolve,reject)=>{
		// 		setTimeout(()=>{
		// 			resolve("获取面试机会")
		// 		},2000)
		// 	})
		// })
		// const p4 = p3.then(value=>{
		// 	console.log(value);
		// 	return new Promise((resolve,reject)=>{
		// 		setTimeout(()=>{
		// 			resolve("面试")
		// 		},2000)
		// 	})
		// })
		// const p5 = p4.then(value=>{
		// 	console.log(value);
		// 	return new Promise((resolve,reject)=>{
		// 		setTimeout(()=>{
		// 			resolve("收到OFFER")
		// 		},2000)
		// 	})
		// })
        // p5.then(value=>{
		// 	console.log(value);
        // })
    }
	{
		new Promise((resolve,reject)=>{
			setTimeout(()=>{
				resolve("学习")
			},2000)
		}).then(value=>{
			console.log(value)
			return new Promise((resolve,reject)=>{
				setTimeout(()=>{
					resolve("整理简历")
				},2000)
			})
		}).then(value=>{
			console.log(value);
			return new Promise((resolve,reject)=>{
				setTimeout(()=>{
					resolve("投递简历")
				},2000)
			})
		}).then(value=>{
			console.log(value);
			return new Promise((resolve,reject)=>{
				setTimeout(()=>{
					resolve("获取面试机会")
				},2000)
			})
		}).then(value=>{
			console.log(value);
			return new Promise((resolve,reject)=>{
				setTimeout(()=>{
					resolve("面试")
				},2000)
			})
		}).then(value=>{
			console.log(value);
			return new Promise((resolve,reject)=>{
				setTimeout(()=>{
					resolve("收到OFFER")
				},2000)
			})
		}).then(value=>{
			console.log(value);
		})
    }
</script>
</html>